package club.service.impl;

import club.dao.AdminMapper;
import club.pojo.Admins;
import club.service.AdminService;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
/**
 * AdminServiceImpl 是 AdminService 接口的实现类，提供了对管理员（Admins 实体类）的增删改查服务。
 *
 * - adminMapper: 注入的 AdminMapper 对象，用于数据库操作。
 *
 * 实现的方法包括：
 * - adminPage: 分页查询管理员信息，根据 adminName 进行模糊查询。
 * - login: 管理员登录验证方法，根据 adminName 和 adminPwd 进行验证。
 * - allAdmin: 未实现的方法，用于获取所有管理员信息的分页列表。
 * - add: 添加管理员信息到数据库。
 * - update: 根据管理员ID更新管理员信息。
 * - findById: 根据管理员ID查询管理员信息。
 * - del: 根据管理员ID删除管理员信息。
 */
@Service
@Transactional
public class AdminServiceImpl implements AdminService {
    @Resource
    private AdminMapper adminMapper;
    @Override
    public PageInfo<Admins> adminPage(String adminName, Integer pageNum, Integer pageSize) {
        PageHelper.startPage(pageNum,pageSize);
        EntityWrapper wrapper = new EntityWrapper();
        if(adminName != null && !"".equals(adminName)){
            wrapper.like("adminName",adminName);
        }
        List list = adminMapper.selectList(wrapper);
        PageInfo<Admins> pageInfo = new PageInfo<>(list);
        return pageInfo;
    }

    @Override
    public Admins login(String adminName, String adminPwd) {
        Admins a = new Admins();
        a.setAdminName(adminName);
        Admins admin = adminMapper.selectOne(a);
        if (admin != null && admin.getAdminPwd().equals(adminPwd)){
            return admin;
        }
        return null;
    }

    @Override
    public PageInfo<Admins> allAdmin(String adminName, int pageNum, int pageSize) {
        return null;
    }

    @Override
    public int add(Admins admins) {
        return adminMapper.insert(admins);
    }

    @Override
    public int update(Admins admins) {
        return adminMapper.updateById(admins);
    }

    @Override
    public Admins findById(Integer id) {
        return adminMapper.selectById(id);
    }

    @Override
    public int del(Integer id) {
        return adminMapper.deleteById(id);
    }
}
